//给定一个未经排序的整数数组，找到最长且 连续递增的子序列，并返回该序列的长度。 
//
// 连续递增的子序列 可以由两个下标 l 和 r（l < r）确定，如果对于每个 l <= i < r，都有 nums[i] < nums[i + 1] ，那
//么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。 
//
// 
//
// 示例 1： 
//
// 
//输入：nums = [1,3,5,4,7]
//输出：3
//解释：最长连续递增序列是 [1,3,5], 长度为3。
//尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的，因为 5 和 7 在原数组里被 4 隔开。 
// 
//
// 示例 2： 
//
// 
//输入：nums = [2,2,2,2,2]
//输出：1
//解释：最长连续递增序列是 [2], 长度为1。
// 
//
// 
//
// 提示： 
//
// 
// 1 <= nums.length <= 10⁴ 
// -10⁹ <= nums[i] <= 10⁹ 
// 
// Related Topics 数组 👍 297 👎 0


package leetcode.editor.cn;

import java.util.Arrays;

/**
 * 最长连续递增序列
 * @date 2022-07-01 10:45:06
 */
class P674_LongestContinuousIncreasingSubsequence{
	 public static void main(String[] args) {
	 	 //测试代码
	 	 Solution solution = new P674_LongestContinuousIncreasingSubsequence().new Solution();
	 }
	 
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
		 //最长连续递增序列
    public int findLengthOfLCIS(int[] nums) {
		if(nums == null){
			return 0;
		}
		if(nums.length == 1){
			return 1;
		}
		int res = 0;
		//dp[i]：以下标 i 为结尾的数组的连续递增的子序列长度为 dp[i]。
		int[] dp = new int[nums.length];
		Arrays.fill(dp,1);
		for (int i = 1; i < nums.length; i++) {
			if(nums[i] > nums[i-1]){
				dp[i] = Math.max(dp[i],dp[i-1]+1);
			}
			res = Math.max(res,dp[i]);
		}
		return res;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
